查看原文
其他

电子科大提出“姿态蒸馏”算法-实现快速人体姿态估计

52CV君 我爱计算机视觉 2019-06-22

关注我爱计算机视觉,一个有价值有深度的公众号



前几天52CV曾经报道过一篇文章:17毫秒每帧!实时语义分割与深度估计 其中用到知识蒸馏方法,实现了超快速的同时语义分割与深度估计,该文引起极大关注,未经授权就被转载到了很多网站。


今天要跟大家分享的文章《Fast Human Pose Estimation》与其类似,也是希望用知识蒸馏的方法获得“模型小计算复杂度低”的易于在边缘设备部署的模型,是昨天刚刚上传到arXiv的,作者分别来自电子科技大学和Vision Semantics公司。




一、姿态估计的任务


人体姿态估计即在含有人体图像中定位出人体的关节点。如下图所示:



姿态估计对于人体行为分析具有重要价值,目前该问题已经成为学术界研究热点,但大部分著述往往关注在设计网络学习更加适合的特征使得定位精度更高,较少研究模型实际部署时面临的模型较大和计算复杂度高的问题。


该文研究的问题即希望保持精度不受太大影响,但大幅度减小模型size,降低模型复杂度,使之更加适合实际应用。


二、算法思想


作者通过两种方式实现上述目标:设计更加轻量级的Hourglass网络和知识蒸馏。


知识蒸馏,包括Teacher 网络和Student网络,一般的做法是使用已经训练好的精度高复杂度高的Teacher网络的输出结果(预测的标签或者最后一层特征层结果)作为Student网络的监督信息训练Student网络。


“知识蒸馏”的名字很有意思,好像知识被浓缩了^_^


请看下图:



图中(a)子图中作者展示了目前姿态估计中使用较多的Hourglass网络,从两个方面对其进行了改进。

轻量级网络架构将原始网络中使用8个Hourglass单元减小为使用4个,同时输入Hourglass网络前的特征图由256个减小为128个。(嗯,就是这么简单~)


图中(b)子图作者展示使用原始网络训练Teacher网络。


图中(c)子图展示使用知识蒸馏,在训练student网络时其监督信息不仅来自Teacher网络,还有数据库上的原始标签。


值得一提的是此处“姿态知识蒸馏”的损失函数。



其由两部分组成,Lmse为姿态估计数据集上的标签与Student网络预测结果的均方误差,Lpd为Teacher网络输出结果与Student网络预测结果的均方误差。


通过Teacher网络的监督信息的加入,弥补了每一步训练“局部数据集”上标签错误、部分遮挡等问题,也有利于学习到Teacher网络已经从大量样本学到的关于人体姿态的先验信息。


下图列举了Teacher网络可作为监督标签有力补充的例子。



仔细想想这个损失函数其实是很自然的,就像教与学的过程,不仅需要老师传授知识,学生也要在真实问题中一步步练习。


三、实验结果


作者在MPII和LSP数据集上进行了实现,所提出的方法“快速姿态蒸馏”FPD都取得了与该库中最好结果可比较的精度,但模型size只有3M,计算复杂度只有1/6到1/7。




结果还是蛮吸引人的!


FPD姿态估计的图片示例:


可惜,该文目前并无开源代码~


论文地址:

https://arxiv.org/abs/1811.05419v1

在“我爱计算机视觉”微信公众号对话界面回复“姿态蒸馏”,即可收到该文的百度云下载地址。


姿态估计交流群:

扫码添加52CV君拉你入群(请务必注明:姿态):

喜欢在QQ交流的童鞋,可以加52CV官方QQ群:928997753。

(不会时时在线,如果没能及时通过验证还请见谅)


如果觉得本文对你有帮助,请点完赞再走^_^


长按关注我爱计算机视觉

【点赞与转发】就是一种鼓励

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存